No właśnie czy zaczynać od C, czy asm, to jest problem. Wszystko zależy od zainteresowań, jeżeli to ma być wyciskanie siódmych potów z procka, czyli np. taki kolorofon, czy jakieś DSP (a co! na ATmega też się da :] ) to zdecydowanie asm, który wbrew pozorom nie jest wcale taki skomplikowany.
C z kolei nadaje się doskonale do aparatury kontrolno - pomiarowej itp.
Oba te języki wymagają więcej wysiłku niż taki bascom, w obu trzeba dobrze opanować architekturę mikrokontrolera, ale to potem procentuje :]
Bascom z kolei jest dobry do prostych aplikacji, tam gdzie wydajność nie ma większego znaczenia - program można napisać szybko i bezboleśnie.
Asembler ma jeszcze taka zaletę, że jak poznasz jeden, to potem nauczenie się kolejnego to już pikuś :]
Do asm - AVR Studio, darmowe do pobrania ze strony Atmela
Do C - AVR-GCC z pakietu WinAVR, też darmowy.
A tak BTW, to asembler nie jest jezykiem wsokiego poziomu.