Dein Code funktioniert nicht, weil du eine "1" um den Wert des Bitmusters verschiebst. Radbruch hat vergessen, das oberste Bit wieder an den Anfang zurückzuführen.

Code:
//CPU ATMega8515

include <stdint.h>

int main( void )
{
    DDRC =  0xFF ;       // PC0 an PORTC als Ausgang setzen
    PORTC = 0xFF;       // Alle PIN C auf High =LED Aus (STK500)

    PORTC &= ~(1 << 0); // Erstes Bit löschen -> Bitmuster mit einer laufenden LED
   
    while(1)                  // Endlosschleife
    {   
        const uint8_t pattern = PORTC;

        PORTC = (pattern << 1) | ((pattern & (1 << 7)) >> 7); // Alle Bits um eins nach links schieben, oberstes Bit maskieren und ganz nach rechts schieben
        _delay_ms(100);           // Eine Sekunde warten...
       
    }
 
    return 0;
}