Genau das war es doch, was sternst meinte ^^ - eben das itoa hier ungeeignet ist.
itoa() erwartet als ersten Parameter ein int (16 Bit / -32768 - +32767). Bei größeren Zahlen bekommst Du daher einen Überlauf.
Auf die Lösung mit printf() bist Du ja schon selber gekommen
Gruß,
askazo