Einfacher Weg: Es gibt für printf und sprintf schon Lösungen in der libc des avr-gcc. Ist in der doku zur libc beschrieben.

Nicht ganz so einfacher, aber sehr lehrreicher Weg: Erst mal mit der Vararbeitung von ellipsen in parametern wie name(arg, ...) vertraut machen. Tipp: Dafür gibt es zwei Makros va_start() und va_arg() mit denen Du die Ellipse abarbeiten kannst.

Die gelesenen Werte aus der Ellipse musst Du dann noch - abhängig vom geparsten Formatstring, also z.B. %d, vom Quelldatentyp hier: int - in den Zieldatentyp, hier: char[], wandeln.

Ich hoffe, das hilft ein bisschen weiter.