Thanks to all your help, the screen is finally working. In case anyone is interested, here's the working code:

Code:
#DEFINE USE_LCD_FOR_DEBUG   ; comment out for non-debug use
   
' ***************************************************************
' Pin Connections
' ***************************************************************

' Vdd      -> pin 1         -> +5V   
' RC5/Rx   -> pin 5         -> EUSART receive
' RC4/Tx   -> pin 6         -> EUSART transmit (LCD)
' RC2      -> pin 8         -> Port motor direction signal (motor 2)
' RC1/CCP4 -> pin 9         -> Port motor PWM output (motor 2)
' RC0      -> pin 10        -> Stbd motor direction signal (motor 1)
' RA2/CCP3 -> pin 11        -> Stbd motor PWM output (motor 1)
' RA1      -> pin 12        -> trim pot input
' Vss      -> pin 14        -> GND
   
DEFINE OSC 16               ; Set oscillator 16Mhz

' USART Settings for Tx/Rc (e.g. LCD)
' > use Mister E PIC Multi-Calc application to get register/DEFINE settings
' > as the values are dependent on the OSC and baud rate

DEFINE HSER_RCSTA 90h ' Enable serial port & continuous receive
DEFINE HSER_TXSTA 24h ' Enable transmit, BRGH = 1
DEFINE HSER_CLROERR 1 ' Clear overflow automatically
DEFINE HSER_SPBRG 130 ' 2400 Baud @ 16MHz, 0.0%
                               
' ***************************************************************
' Device Fuses
' ***************************************************************

#CONFIG
   __config _CONFIG1, _FOSC_INTOSC & _WDTE_ON & _PWRTE_ON & _MCLRE_OFF & _CP_OFF & _CPD_OFF
   __config _CONFIG2, _PLLEN_OFF & _STVREN_ON & _BORV_LO & _LVP_OFF
#ENDCONFIG

' ***************************************************************
' Initialization
' ***************************************************************

OSCCON    = %01111000       ; 16MHz internal osc

pause 100

APFCON0.2 = 0               ; Tx on RC4 for LCD display
APFCON0.7 = 0               ; Rx on RC5

BAUDCON.4 = 1               ; Transmit inverted data to the Tx pin

' From Mister E's Multi-Calc for EUSART:
SPBRGH    = 6
BAUDCON.3 = 1               ' Enable 16 bit baudrate generator

ANSELC    = 0               ; Digital only for all PortC pins
TRISC     = 0               ; Make all PORTC pins output

TRISA     = %00000010	    ; Make all pins output except for RA1
                            ; (trim pot input)
ANSELA    = %00000010       ; Analog on PORTA.1 (AN1) only

FVRCON    = 0               ; Fixed Voltage Reference is disabled
ADCON0    = %00000101       ; ADC enabled on AN1 (RA1) only; ADC conversion
                            ; enabled
PAUSEUS 20                  ; wait for the analog switch 'glitch' to die down
ADCON1    = %00110000       ; Left-justified results in 8-bits; Frc as timer
 
#IFDEF USE_LCD_FOR_DEBUG
'   Display control codes for PC1602LRU-XWA serial LCD
'   (see 'Dropbox\PBP Projects\PIC Datasheets\PC1602LRU-XWA LCD Datasheet.pdf' 
'   for list of control codes)
    LCD_HOME      CON 1     ' Cursor home
    LCD_CLR       CON 12    ' Clear screen
    LCD_HIDE_CRSR CON 4     ' Hide cursor
    LCD_NEXT_LINE CON 13    ' Move cursor to the first position of the next line 
#ENDIF

MotorDuty   VAR BYTE        ; Actual duty cycle for motor
ADCInVal    VAR BYTE        ; stores ADCIN result read from trim pot
compVal     VAR BYTE        ; stores last-changed ADC value
MinDuty     CON 100         ; Minimum speed to rotate motor for this application
MaxDuty     CON 252        
MaxADCVal   CON 255         ; 255 for 8-bit; 1023 for 10-bit

#IFDEF USE_LCD_FOR_DEBUG
    pause 1000
    HSEROUT [LCD_CLR]
    pause 5
    HSEROUT ["LCD Init",LCD_NEXT_LINE]
    pause 5
    HSEROUT ["PC1602LRU-XWA"]
    pause 1500
#ENDIF

gosub Do_ADC
compVal = ADCInVal           ; set initial compare value
GOSUB Map_ADC_Val_to_PWM_Duty
                                                              
Main:
    gosub Do_ADC
    pause 100

    If ADCInVal <> compVal Then
        compVal = ADCInVal
        GOSUB Map_ADC_Val_to_PWM_Duty
    endif
 
GOTO Main

Do_ADC:
    PAUSEUS 50              ' Wait for A/D channel acquisition time
    ADCON0.1 = 1            ' Start conversion
    
    WHILE ADCON0.1 = 1      ' Wait for it to complete
    WEND

    ADCInVal = ADRESH

    return


Map_ADC_Val_to_PWM_Duty:
'   Arduino Map function to emulate:
'   ===============================
'   map(value, fromLow, fromHigh, toLow, toHigh)

'   long map(long x, long in_min, long in_max, long out_min, long out_max)
'   {
'     return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min;
'   }

    MotorDuty = (compVal - 0) * (MaxDuty - MinDuty)/(MaxADCVal - 0) + MinDuty
    
    #IFDEF USE_LCD_FOR_DEBUG
        HSEROUT [LCD_CLR]
        pause 5
        HSEROUT ["compVal=",DEC compVal,"  ",LCD_NEXT_LINE]
        pause 5
        HSEROUT ["MotorDuty=",DEC MotorDuty,"  "]
    #ENDIF

    RETURN