А атмега32 это принципиально? Может взять какую-нибудь, у которой есть прерывание по изменению порта?
Ну и с самим прерыванием нужно аккуратнее, там будут проблемы когда фронты на разных линиях подойдут близко друг к другу - такое может происходить, если девайс управляется от цифрового контроллера, который валит или все импульсы разом (общее начало - разный конец). Вообще если возможно наложение фронтов - точность в 2-3 цикла ИМХО нереальна. Потому что если фронты идут с разхождением в несколько тактов - прога первый фронт поймает, начнет выполнение обработчика, и только когда его полностью выполнит - начнет обработку следующего фронта, опоздание будет равно времени выполнения обработчика.
А - еще есть простенькая внешняя микросхемка! Называется atmega48A, около бакса стоит
Пускай она все ноги обмеряет и по любому удобному цифровому каналу (spi,uart,i2c) шлет готовые цифры. Запускать без кварца, тактировать от генератора основной меги. А можно и атмегу8, обработку вообще без прерываний делать, шустрым главным циклом, средняя погрешность немного возрастет (до пары мкс может), зато максимальная может и уменьшиться. Работу с передатчиком только надо аккуратно из такого цикла делать, максимально короткими действиями.