int ist nicht zwingend 32bit (ich vermute mal, beim AVR ist das nur 16 bit).

Was Du willst ist: unsigned long, bzw. long als Variablentyp

Da Du den GCC verwendest empfehle ich die Verwendung von

Code:
#include <inttypes.h>

uint32_t varUnsigned32bit;
uint16_t varUnsigned16bit;
int32_t varSigned32bit;
in16_t  varSigned16bit;
uint8_t varUnsigned8bit;
...usw.