Согласно даташит там 8Кб памяти это примерно 3500-4000 команд, в Atmega168 в два раза больше
Во-первых, вы не с того начали. В первую очередь МК это некая "железяка" ("черный ящик") у которой есть входы/выходы. В свою очередь у вас есть периферия (датчики/исполнители) которая цепляется на эти самые входы/выходы. Т.е. для начала вам нужно определится с железной составляющей МК и по этому параметру делать выбор МК как правило разработчики придерживаются некоего баланса памяти и количества выводов. т.е. если у вас хватает пинов то и памяти скорее всего будет достаточно.
Во-вторых, осваивать МК лучше начинать с использованием Assembler, так проще понять принцип взаимодействия МК с периферией и контролировать расход памяти. С другой стороны поднять проект на Assembler сложнее бегущих огней даже для профи долго и проблематично.
В-третьих, если вы хотите войти в МК "прям сразу" стоит смотреть в сторону Arduino. Там вы имеете ряд стандартизированных модулей, вам не нужно заморачиватся с обвязкой (кварцы, стабилизаторы, программаторы, беспаячные выводы), есть куча периферии с готовыми драйверами и библиотеками. С другой стороны как правило там используется ATmega328 который без проблем можно программировать напрямую в т.ч. и на Assembler.