I realized what the problem was. xprevious =x was in the movepot subroutine, so anytime either the analog pot or tempo button changed x, xprevious would change.

This seems to have fixed it.
Code:
#config 
    __CONFIG _CP_OFF & _WDTE_OFF & _BOREN_OFF & _PWRTE_ON & _INTRC_OSC_NOCLKOUT & _MCLRE_OFF & _IOSCFS_8MHZ
#endconfig

ADCON0 = %00000000
ADCON1 = %00110000
ANSEL = %00000110
define ADC_SAMPLEUS 50
define ADC_BITS 8
DEFINE ADC_CLOCK 3
CM1CON0 = %00000000     
CM2CON0 = %00000000     
TRISA = %00001111        
TRISC = %00000000
   
    
    ' Set TMR0 interrupt prescaler to 1:128
    OPTION_REG = %10000110        ' Set TMR0 configuration and enable PORTB pullups
    INTCON = %10100000           ' Enable TMR0 interrupts
    On Interrupt Goto tickint
    
    '                      
    '    Hardware connection
    '    ===================
    CS          VAR PORTA.5
    SCK         VAR PORTC.2
    SDI          VAR PORTC.1
    tempoLED var PORTC.0
    tempobutton var PORTA.0      
    bypassbutton var PORTA.3     
    bypassLED var PORTC.4
    fetA var PORTC.5
    fetB var PORTA.4
    fetC var PORTC.3
    ;pot is on   porta.2  an2
    
    
    '   
    '    Variables definition 
    '    ===================
    w var byte                          ' division toggle switch
    x var byte                          ' delay time knob
    xprevious var byte
    z var byte
    
    ticks var word
    tapcount var word
    LEDcounter var word      
    LEDrate var byte
    
    trailsmode var byte
    trailsmodecounter var word 
    LEDon var byte
    LEDoff var byte
    override var bit
    analogpot var bit
    footswitch var bit
    analogpot = 1
    footswitch = 0
    
   
                           
    '
    '    begin in bypass
    '    ===============
    
    tempoLED = 0
    fetA = 0
    fetB = 0
    fetC = 1
    bypassLED = 0
    trailsmode = 0
    gosub readpot
    gosub movepot
    pause 100
    
main: 
        tapcount = ticks
         gosub potcheck
        
        if LEDcounter < 1  then
            tempoLED = 1
        else
            tempoLED = 0
        endif
        if bypassBUTTON = 0 then
            gosub bypasspress
            gosub bypassbuttonrelease
        ENDif
        if tempobutton = 0 then
            goto tempopress
        endif
                    
goto main

potcheck:       
       gosub readpot
       if abs (xprevious-x) > 4 then
            override = analogpot
            gosub movepot
       endif
return

tempopress:                                                       ' subroutine that occurs when tempo button is tapped
    if tapcount > 180 then                                        ' if longer than 3 seconds between taps, ignore the previous tap.
        ticks = 0
        gosub tempobuttonrelease
    else
        x = tapcount + 10
        override = footswitch
        gosub movepot
        ticks = 0
        gosub tempobuttonrelease
    endif    
goto main

tempobuttonrelease:                                          ' debounce subroutine for tempo button
    tempoLED = 1
    do until tempobutton = 1
        pause 10
    loop
    tempoLED = 0
return

movepot:        
        CS = 0
        shiftout SDI, SCK, 1, [00000000,x]
        shiftout SDI, SCK, 1, [00010000,x]
        CS = 1
        if override = analogpot then
            xprevious = x
        endif
        gosub tempoLEDadjust
return
         
readpot
    adcin 2,x
    x = 1 max x      ;stop led from shutting down  completely
return

tempoLEDadjust:                                           '  compensate for TMR0 not being 1:1 with actual delay time
    LEDrate = (x/2) + 6
return 

bypasspress:
    trailsmodecounter = 0                                      ' waits to see if you want to switch between normal or trails mode
    do until trailsmodecounter = 400
        if bypassbutton = 1 then exit
        pause 10       
        trailsmodecounter = trailsmodecounter + 1
    loop
    
    if trailsmodecounter = 400 then
        goto trailmodechange
    endif 
    
    if trailsmode = 1 then 
        gosub trailsbypass
    elseif trailsmode = 0 then
        gosub normalbypass
    endif
return

trailmodechange:                                                ' subroutine that occurs when bypass button is held long enough to change between normal or trails mode
    if trailsmode = 1 then
        trailsmode =  0
    elseif trailsmode = 0 then
        trailsmode = 1
    endif
    
    for z = 1 to 5
    tempoLED = 1
        pause 100
    tempoLED = 0
        pause 100
    next z
    
goto main    

normalbypass:                                                       ' subroutine for normal bypass
    if bypassLED = 0 then
        fetA = 1
        fetB = 1
        fetC = 0
        bypassLED = LEDon
    elseif bypassLED = 1 then
        fetA = 0
        fetB = 0
        fetC = 1
        bypassLED = 0
    endif
return

trailsbypass:                                                       'subroutine for trails bypass
    if bypassLED = 0 then
        fetA = 1
        fetB = 1
        fetC = 0
        bypassLED = LEDon
    elseif bypassLED = 1 then
        fetA = 0
        fetB = 1
        fetC = 1
        bypassLED = LEDoff
    endif
return

bypassbuttonrelease:                                               '  debounce subroutine when bypass button is pressed
    do until bypassbutton = 1
        pause 10
    loop
return    
  
Disable                                 ' Disable interrupts during interrupt handler
tickint:                                    ' Interrupt routine to handle each timer tick      
    LEDcounter = LEDcounter + 1            ' add 1 to LEDcounter on every interrupt
    if LEDcounter > LEDrate then
        LEDcounter = 0
    endif
    ticks = ticks + 1
    if ticks > 300 then                     'prevent overflow when long periods of time pass between taps
        ticks = 240
   endif
tiexit: 
   INTCON.2 = 0                             ' Reset timer interrupt flag
   Resume
enable
end
Now I just need to make some fine adjustments so that the tempopress subroutine changes x so that the echoes are actually in time with the tempo that is tapped out. And I also need to add the division toggle switch. That's pretty simple though. It just divides x in half for double time or thirds for triplets.