We sure love the ATmega328 here at Adafruit, and we use them a lot for our own projects. The processor has plenty of GPIO, Analog inputs, hardware UART SPI and I2C, timers and PWM galore - just enough for most simple projects. When we need to go small, we use a Pro Trinket 3V or 5V, but if you want to have USB-to-Serial built in, we reach for an Adafruit METRO Mini.
METRO Mini is the culmination of years of playing with AVRs: we wanted to make a tiny, breadboard-friendly development board that is easy to use and is hacker friendly. Metro Mini can be programmed with the Arduino IDE (select 'UNO' in the boards dropdown)