The above sketch shows how the stalk switch works. The switch lever moves a small brass cylinder between four contacts shorting each together in turn. The exception to this is that when the cylinder is pushed passed contact 1 (into the single wipe position) two extra contacts between main contacts 2 and 3 close thus shorting them together.
Above is the circuit including the stalk switch and the motor. The two-way switch at the top is the park switch (it is located inside the motor and reduction gear/crank case) which is shown in the park position (connected to 0 volts or the chassis). In all other positions of the wiper blades, the park switch is connected to 12 volts.
If the stalk is in the off position 1 and 2 are connected so if the motor is not parked the slow connection gets 12 volts until the park position is reached when the switch changes over and the slow motor terminal gets connected to 0 volts so the motor is short circuited. This is a form of magnetic braking which stops the motor dead in the park position.
If the stalk is in the slow position, contacts 2 and 3 are shorted together feeding 12 volts to the motor slow connection (the park switch is not connected and has no effect).
If the stalk is in the fast position, contacts 3 and 4 are shorted together feeding 12 volts to the fast connection.
In my circuit, I use connections from contacts 2 and 3 to feed slow and fast signals (via opto isolators which cut out any electrical noise and translate the voltage to 5 volts) to the Arduino. I cut the park switch connection to the stalk and feed it into an Arduino input (again via an opto isolator).
Original wiper circuit
Left are the details of the connectors to the stalk switch and the wiper motor for the sake of completeness.