Hola, muchas gracias, eres muy amable.
Le estuve moviendo quedo el siguiente código funcionando para mover varios bits del CAD a dos puertos A y B en la posición que uno necesite cada bit.
Por si a alguno le interesa:
while(1)
{
ADC_CONVERT();
fuente= ADC1BUF0;
ZA=0x0000;
ZB=0x0000;
y = fuente & 0b0000000000000001;
y = y << 1;
ZA = ZA | y;
y= fuente & 0b0000000000000010;
y = y << 3;
ZA = ZA | y;
y= fuente & 0b0000000000000100;
y = y >> 2;
ZB = ZB | y;
y= fuente & 0b0000000000001000;
y = y >> 2;
ZB = ZB | y;
y= fuente & 0b0000000000010000;
ZB = ZB | y;
y= fuente & 0b0000000011100000;
y = y << 2;
ZB = ZB | y;
y= fuente & 0b0000001100000000;
y = y << 6;
ZB = ZB | y;
LATA=ZA;
LATB=ZB;
}
Saludos

Es todo un tema, por que es un buffer del ADC y apenas se lea significa que se pierde el dato, por lo cual lo ideal es que primero lo pases a una variable y luego lo uses..
int var;
var = ADCBUF0;
_LATA1 = var & 0x1;
Si no te interesa guardarlo y no te importa si se pierde ese valor: