Getting multiple inputs in Atmega32
Resistor network and ADC
As stated in Jay Carlson's answer, you can use resistors and an ADC pin. The circuit to do that is the R/2R resistor ladder.

The resistors must be more accurate the more bits you have. The required accuracy doubles with each additional bit: for 8 bits, the accuracy required will be better than 1/256 (0.4%). There are integrated circuits (like this one) available that provide such levels of accuracy, but most are only accurate enough for 8 bits.
Also, for 10 bits, your integrated ADC's accuracy might not suffice. Even when it generates 10 or 12 bits of digital output, the actual accuracy can be lower, so read your datasheet carefully. You will also have to use the exact same (within the stated limits), undisturbed reference voltage for both DAC and ADC, which can be a challenging task on its own.
Additionally, you need low impedance push buttons on the resistor network (buttons that connect to either ground or analog reference). Ground-only buttons with pullups will not suffice. If you use them, you will need additional circuitry.
IO-expander ICs
There are integrated circuits available that provide all the functionality you want (and a lot more, like both input and output, selectable pullups) but require a bi-directional bus connection to your microcontroller, mostly I²C or SPI.

I²C needs two wires, but any number of devices can be connected to a single bus. If you already have an I²C-bus, this solution doesn't cost you a single additional wire.

SPI costs three wires per bus plus one per connected device.

1-wire needs one wire per bus for any number of devices, but I didn't find any IO-expanders that use it. This, however, doesn't mean they don't exist.


If you already use one of these busses, I²C and SPI fulfill your &quot;at most one pin&quot; constraint.
Additional microcontroller and UART
If you don't have a bus and are hard limited to one wire, you can use an additional microcontroller that does the IO and sends the data via an UART interface. This requires one pin, is easy to implement and very flexible. You are not limited to digital IO: you can include analog or even preprocessed data, like temperature. Even such complex devices as GPS-receivers use this simple interface: they output lattitude/longitude/altitude in human readable ascii-text, one sample per line.
If you want to include output or configure the microcontroller, you either need to add another pin for bidirectional UART or use one of the bus interfaces discussed above. If no 1-wire IO-expander exists and you decide to use a microcontroller connected via 1-wire, this basically becomes:  i'll make my own IO-expander.
Comparison/Conclusion
Resistor network

Simple for a low number of push buttons.
Required accuracy grows quickly with the number of inputs.
Requires double pole buttons, not on/off versions.
Requires an ADC pin.

IO-expander

Off-the-shelf, requires almost no discrete components. Even the pullup resistors for the buttons are included.
Requires a bus interface, preferably hardware I²C, SPI or 1-wire pins.
No additional pins required if a bus is already in use for other purposes.
Can be implemented using bit-banging on GPIO pins, at the cost of less bandwidth and more developer time.

Microcontroller

Same advantages as IO-expander.
More flexible.
Preprocessing possible.
Unidirectional UART possible (very easy to implement).
More developer time required.
One more production step (flashing an additional controller).