Can't help with the interupts for now but will offer a suggestion for your A/D part. I'm not sure how you got the numbers to compare and set the servo output values. Your variable "temp" will only get a value somewhere between 0 and 1023 due to the 10bit A/D.
Code:
FINDPROGRAM                'SELECTS BETWEEN SEVERAL TYPES OF MOTION
    ADCIN 10, TEMP          'READ CHANNEL 10 TO TEMP
    IF TEMP = 15000 THEN POSITION = 125                    'USES VOLTAGE DIVIDER TO
    IF TEMP  15000 AND TEMP = 22000 THEN POSITION = 150   'VARY THE VOLTAGE ON CH10.
    IF TEMP  22000 AND TEMP = 35000 THEN POSITION = 175   'THIS CONVERTS AND STORES
    IF TEMP  35000 AND TEMP = 47000 THEN POSITION = 200   'TO 'TEMP'.
    IF TEMP  47000 AND TEMP = 60000 THEN POSITION = 225   
    IF TEMP  60000 THEN POSITION = 250
    GOSUB SETPULSE   
RETURN
I would suggest using the SELECT CASE to compare your 6 A/D value possibilities. List the "Values" in ascending order and this will set your "POSITION" value as needed.
Code:
FINDPROGRAM                'SELECTS BETWEEN SEVERAL TYPES OF MOTION
    ADCIN 10, TEMP   ' Note: Value returned will be anywhere from 0 to 1023
    SELECT CASE TEMP
        CASE Value1: POSITION = 125         'TEMP = Value1, lowest value 
        CASE is <= Value2: POSITION = 150   'TEMP <= Value2
        CASE IS <= Value3: POSITION = 175   'TEMP <= Value3
        CASE IS <= Value4: POSITION = 200   'TEMP <= Value4
        CASE IS <= Value5: POSITION = 225   'TEMP <= Value5
        CASE Value6: POSITION = 250         'TEMP = Value6, highest value
    END SELECT        
    GOSUB SETPULSE   
RETURN