Der direkte Vergleich mit 0 ist schon etwas hart. Soviel Störungen, wie da schon im uC umherirren können, ist das letzte Bit immer "über" und kann rauschen.
Teste doch mal gegen 5...

Wieviel Strom fließt durch die LEDs ? Welche Vorwiderstände hast Du da gewählt ?

Die Zuweisung "ADCON1=82" finde ich - kreativ. Sie macht nichts falsches, aber Du setzt Bits, die es nicht gibt, bis auf eines, das bleibt 0.

Du bist sicher, daß der uC nicht ständig neu startet, weil Du einen Reset auslöst ? MCLR falsch beschaltet ?