I think you're taking the right approach with splitting the signal and measuring each parameter separately.
First, you measure the DC offset voltage by low-pass filtering the signal and feeding the output into the A/D. Because the signal swings across such a huge range of frequencies, you'll either need a filter with an adaptive cutoff frequency, or you'll have to put up with a long lag in your readings. You might be able to do something clever by only filtering the signal enough in hardware to get it down to 20 kHz or so; then you could calculate the average value in software.
(I don't think that it speeds up your response, but it might be easier than building a filter with a changing cutoff frequency, which is not trivial.)
Then, you go after the amplitude. You level shift, rectify, and scale the input voltage so that it spans the range of the Atmega16 A/D. You could do this with two fast opamps and a rectifier. I think the order is important, or at least you have to be careful about what voltage your rectifier is referenced to.