What's the best way to connect a 4-digit 7-Segment LED to Atmega168
You can reduce the number of pins you are using on the AVR by multiplexing the displays. Connect all the segments together and connect them to seven output pins via resistors, and connect the four common cathodes to another four output pins. This should give you consistent brightness. The software will be more complex, but it's a much better solution.

Because the human eye responds to peak brightness, multiplexing can provide more brightness than is possible with non-multiplexed displays, and uses less power, especially if the duty cycle is reduced.

You need to ensure that the current limits of the AVR pins aren't exceeded, of course. Driver devices will be needed if greater currents than the 25 mA limit for the AVR pins are required. I use them on a PCB I designed for a similar application.