hi,
das bringt den AVR nich um, wenn der input>vref ist, du kriegst halt nur immer 1023 als ergebnis. die betriebsspannung zu nehmen ist nich so toll, weil. 1. ist der 7805 nicht temperaturstabil. 2. verändert sich die versorgungsspannung mit der last. das führt halt zu 'zappelnden' werten, mit der int. ref wird's richtig gut. was noch enorm wichtig ist, häufig wird in examples so geschrieben:

start adc
x=getadc(x)
stop adc

sehr üble geschichte, der befehl start adc macht nix anderes, als die vref aufzubauen. bis die perfekt steht, speziell wenn noch'n c van vref hängt, vergeht 'n bischen zeit.
ist gut wenn ein waitms x zwischen start und get steht, dann werden die ergebnisse immer schön gleich.
gruss, harry