It doesn't seem to be a software problem. Your code doesn't have any apparent mistakes and the main loop runs correctly many times before anything happens.
I'd look into the hardware - ground/supply connections, decoupling capacitors, free-floating inputs, and the like.
All of the parts and connections are surrounded by a ground plane on the bottom of the board and I was using shielded wire to the pot and a 10uF electrolytic cap and a 1000pf ceramic on the AN13 connection. There is also a second PIC controller (a 16F1847) on this board with 4 analog inputs activated (each with a resistor network tied to it, but with no caps) and I have no problems with it.
I did find a couple of problems. In the register setup section I had RB5 (Analog channel 13) set as an output (TRISB = %00011111). This was causing all kinds of value problems on the display. I also had ALL of the analog channels turned on in register B (ANSELB = %00111111) and had nothing connected to them. I've since made the corrections (TRISB = %00100000 and ANSELB = %00100000) so that only one analog input port is active. The readings are now what they're supposed to be on the display, but the chip is still locking up. I have the chip set up so that FOSC is routed to pin 10 (RA6) and is monitored by a scope. I still get a clock signal on RA6 even when everything else seems to lock up.
Any further advice?