Hm, I'm thinking it could be one of two (three?) problems:
1) you are sinking too much current into your ADC
2) You are sourcing voltage for the ADC from something on a single power supply, and when you read it you brown out the board somehow. THIS is pretty unlikely, but since I just managed to do it last week, I thought I'd mention it :-P
3) *MAYBE*: your voltage is WAY too high for the ADC and the chip is resetting
Unless you're doing something REALLY weird in terms of your code, just doing a "read adc" function call likely won't cause the issue. Have you tried commenting out your read call then trying to run the program and see if it resets? (to do that, if you needed the ADC value, just write it down in code, like a value of 100 or something, so the code still does something). If so, then it's probably a power issue, not a code issue.
MIKE