Das passende Verfahren heißt DDS. Für die Ausgabe braucht man da einen Digital-Analogwandler, in irgendeiner Form. Der µC ist dabei schon relativ stark beschäftigt.

Wenn die Frequenz der Sinuswelle nicht so hoch sein muss, kann man auch beim Mega168 einen PWM Ausgang als DA Wandler nutzen. Bei 7 Bit PWM Auflösung kommt man schon auf rund 150 kHz PWM Frequenz (bei 20 MHz takt) und könnte damit auch noch einen Sinus bis etwa 10 kHz darstellen. Am Ausgang braucht man dann als Hardware nur einen Tiefpassfilter - je niedriger die Frequenz, desto einfacher kann der Filter ausfallen.

Besser wird es mit einem externen DA Wandler oder halt einer R2R Widerstandskette, für wenig PINs ggf. auch am SPI Anschluß.