Code:
void display(uint16_t result) 
{ 
   lcd_init(LCD_DISP_ON_CURSOR);   //LCD initialisieren 
   lcd_gotoxy(0,0);            //Cursor an erste Stelle setzen 
   lcd_puts("Temperatur:");      //"Temperatur" ausgeben 
   lcd_gotoxy(11,0);            // Cursor hinter "Temperatur:" setzen 
    
       
    
   char buffer[8];               //Array für itoa anlegen 
   float f=((float)result*5)/1024;   // 
   if(f<0)f=0; 
   itoa((int)f,buffer,10); 
   lcd_puts(buffer); 
   f=(f-(int)f)*1000; 
   if(f<100)lcd_putc('0'); 
   if(f<10)lcd_putc('0'); 
   itoa((int)f,buffer,10); 
   lcd_putc(','); 
   lcd_puts(buffer); 
    

   PORTD = result;               //Den Digitalen Wert mit Hilfe der LED`s anzeigen 
   return; 
}
sicher, dass das so überhaupt kompiliert? weil char buffer[8] und float f mitten im code deklariert sind..
das 10bit result direkt an PORTD auszugeben (der ja nur 8bit hat) wird zu falschen ergebnissen führen.

gruesse