Is it possible to control a fan with a single button that cycles though fan speeds without using a micro controller. Can anyone point me to some documentation on how this would work or any ideas how this could work?
Yes, mechanical ratchet drum sequencers can do this, driven by a solenoid or even just mechanically by the button itself.
Probably the most familiar example would be a traditional ceiling fan pull chain. The first pull turns the fan on, successive ones change speed, eventually with enough it turns off (but good luck distinguishing "on" from "off" and coasting unless the motor is cheap and loud).
Internally what is likely happening is that there is a rotating element with arrangements of contacts which complete different circuits. Each pull of the chain (or push of your button) advances it a partial turn changing the circuit configuration, and a spring pawl then holds it in position.
Today semiconductors may be cheaper than mechanisms - a little state machine in a custom circuit or a fraction-of-a-dollar MCU may cost less than an intricate mechanical assembly, and potentially last longer. However, that little logic circuit cannot directly switch motor loads, so the cost of power semiconductors and the complexity of the circuit needed may come into play, too.
I'd expect a decision matrix looks something like this
Easy to switch the load with semiconductors
Use the cheapest MCU or in extreme volumes a small custom circuit implementing a discrete state machine
Hard to switch the load with semiconductors, sequence is simple
Use a ratcheting mechanical drum or similar
Hard to switch the load with semiconductors, but need something else like remote control
Now the expense of semiconductor switching is justified, so the pushbutton circuit might as well drive a logic circuit or MCU to sequence state.
To take the ceiling fan example, the mechanical pull ratchet is obviously quite cheap and mature, and is what ships with the basic models. A step up from that, or as a retrofit, you can get a remote control receiver that electronically switches. The manufacturers could of course pair that electronic switching with an electronic implementation of the pull chain, but they don't, because it is unjustified. Only a small part of the electronics box in a ceiling fan remote receiver is the actual radio receiver, most of it is the speed switching (and ok, light dimming) circuit, a complication only needed where a mechanical solution is unworkable, or where an extra capability like TRIAC light dimming is needed.
In addition to Chris Stratton's answer, it is (in principle) easy to build a sequencer from a single IC, such as a 74HC163 binary counter. But the heart of the circuit is the least of your issues. First, you would need to debounce a mechanical pushbutton in order to get reliable operation. Second, you would need to decode the outputs of the counter to do the actual control of the fan motor. I've no experience with 5-speed fans, but I suspect this would be the biggest part of the project.