Nee, der AD-Wandler funktioniert im Studio nicht sondern gibt immer 0 aus, aber man kann den Wert dann per Klicke auf diese Kreise die die Bits darstellen eingeben.

Edit: Sorry, ich hab da gepennt, mit dem ADC-Start-Conversion Bit funktioniert es auch (ich dachte das würde sofort nach dem starten des ADC wieder 0).
Das Problem liegt imho darin, dass du nicht lange genug wartest.
Geh mal auf die Zeile "AD-Wandler-Wert MSB lesen - in r16,adcl", drück F9, dann setzt er da einen Breakpoint.
Dann drückst du F5 und er läuft so lange weiter bis er einen Breakpoint erreicht.
Dann geht's auch.

Noch nen par Anmerkungen: RJMP ist nen Takt schneller als JMP und braucht nur 2 Byte Code.
Das RET am Ende springt irgendwo in die Walachei, es läd den Wert vom Ende des SRAM, und da steht ne Zufallszahl und springt dahin.
Um das Programm zu beenden schreibt man meistens "loop: rjmp loop" oder "rjmp main" um das Programm von vorne zu beginnen (dann muss halt nen Label mit dem Namen "main" am Anfang stehen.
RET braucht man also nur um aus einer Subroutine zurückzukommen.
Und das das ganze ziemlich Ressourcenfressend ist, da er so lange in der Schleife wartet, weißt du wohl selber.

MfG