Hola,
Yo he trabajado últimamente con el ADC de un 16F876, qué es el hermano gemelo (si no recuerdo mal) del que estas usando tú. No he entendido bien lo que quieres llevar a cabo, pero te paso la rutina que uso yo cada vez que quiero convertir a digital la tensión que tengo en la patilla RA0 (según mi configuración).
ADC_ON
BCF ADCON0,7 ;CONFIGURA ADCON0
BSF ADCON0,6 ;CON OSCILADOR/8
BCF ADCON0,5 ;BIT 5,4,3 PARA CANAL ANALOGICO RA0
BCF ADCON0,4
BCF ADCON0,3
BSF ADCON0,0 ;CONVERSOR EN MARCHA
CALL RET_ADC ;RETARDO ADC NECESARIO
CONVERSION
BSF ADCON0,2 ;EMPIEZA CONVERSION
BUCLE
BTFSC ADCON0,2 ;BUCLE ESPERA HASTA CONVERSION
GOTO BUCLE
MOVFW ADRESH ;MIRA EL RESULTADO DE ADRESH
MOVWF TEMP_H ;LO PASAMOS A UN REGISTRO
BSF STATUS,RP0
MOVFW ADRESL ;MIRA EL RESULTADO DE ADRESL (BANCO 1)
BCF STATUS,RP0
MOVWF TEMP_L ;LO PASAMOS A UN REGISTRO
BCF ADCON0,0 ;PARAMOS EL CONVERSOR HASTA PROXIMA
RESULTADO
GOTO COMPARACIONES
Para que esto funcione, cuando al principio del programa configures los puertos y demás movidas en el Banco0, recuerda poner estas líneas:
MOVLW B"00001110" ;PARA EL ADC
MOVWF ADCON1 ;RA0 COMO ENTRADA ANALOGICA PARA CONVERSOR
MOVLW B"110001" ;TENSIONES DE REFERENCIA LAS DE VCC Y MASA DEL PIC
///La útlima línea configura el TRISA según lo necesité, pero es importante que configures como entrada (un 1) el bit0 del puerto A que es el usado en mi ejemplo como entrada analógica.
Espero que te sea de ayuda, a mi me funciona a la perfección.
Saludos