Code:
@ DEVICE pic12F629, INTRC_OSC_NOCLKOUT  ; Using Internal Clock, no clock out
@ DEVICE pic12F629, WDT_ON              ; Enable Watch dog timer
@ DEVICE pic12F629, PWRT_ON             ; Enable Power-up timer
@ DEVICE pic12F629, MCLR_OFF            ; Disable MCLR pin  
@ DEVICE pic12F629, BOD_ON              ; Enable Brown-out detect
@ DEVICE pic12F629, CPD_OFF             ; EEPROM Protect
@ DEVICE pic12F629, PROTECT_OFF         ; Code Protect off
data 0, 100 , 250
trisio=$fe:intcon=0:cmcon=7:servoout var gpio.0:serlimitsw var gpio.1
potin var gpio.2:minsw var gpio.4:maxsw var gpio.5:posit var byte
minposit var byte:maxposit var byte:low servout
read 0,MinPosit:read 1,MaxPosit
Start:     gosub GetServoPosition : pulsout servoout, posit : pause 20
if setlimitsw = 1 then 'check min max buttons
        if minsw = 1 then MinPosit = Posit : write 0, MinPosit : pause 25
        if maxsw = 1 then MaxPosit = Posit : write 1, MaxPosit : pause 25
endif
goto start
GetServoPosition:     high potin:pause 1:rctime potin,1,Posit:posit=posit*2
if posit < 100 then posit = 100
if posit > 250 then posit = 250
if setlimitsw = 0 then 'apply limits
        if Posit < MinPosit then Posit = MinPosit
        if Posit > MaxPosit then Posit = MaxPosit
endif 
return
Give that a shot, see what happens. The scaling is 'fixed' for now, and needs to be worked on...