probiers mal so:
Code:
#include <avr/io.h>

int main (void) {

DDRB = 0x03;
PORTB = 0x00;

DDRC = 0x00;
PORTC = 0x01;

while (1) {
   if ( PINC & (1<<PC0) ) {   //Abfrage ob an Pin C0 5V anliegen 
      PORTB |= (1<<PB1);        // Pin PB1 auf High
   } else {
      PORTB &= ~(1<<PB1);       //Pin PB1 auf Low
   }
}
}
PB0 bleibt dabei auf 0 (GND), am Eingang PC0 wird diesmal der Pullup gesetzt.
Funktioniert also genau andersrum wie vorher, hat aber den Vorteil, dass 2 definierte Zustände am Eingang vorhanden sind. Einmal durch die Brücke auf Masse gezogen, ohne Brücke durch den Pullup am PC0 auf 5V hochgezogen.

Alternativ kannst auch nen 50kOhm Pulldown an PC0 hängen und deinen code nochmal probieren