How about using a disc that rotates with the wind vane, but is mounted slightly off-centre? Then an LDR or phototransistor situated so that it sees an LED partly obscured by the disc. So that (for example) at N the light is almost completely obscured and at S it is almost completely unobscured. For degrees of obscuration between these, a second LDR or phototransistor and LED offset by 90 degrees from the first one can be used to disambiguate the reading.
Using 2 sensors in this way, I think it may be possible to make the system self-calibrating, since N S E and W can be positively identified from maximum and minimum readings.
Realise this has been still for some time, but.... With my previous experience with megasquirt fuel injection/engine management, i would definitely opt for using hall sensors. They are small, cheap, reliable and will work even if they are completely contained in silicone/glue, or they are hot or cold and still provide reliable readings at both high/low RPM. I'm starting to plan an arduino weather station, and i've been challenged the most by the wind speed. However, my current plan is to make an array of 8 hall sensors, each coupled to a different resistor, thus i should be able to read the direction by reading the analog value and only use 1 pin. on the arduino. I like the wind sensor designs where the direction and speed sensors are mounted on the same pole, and that's what i'm going to try to replicate. I think i'm gonna do a simple hall sensor solution for the wind speed as well. It's gonna run only three wires into the unit. Perhaps some sort of heating would be a good idea as well.
Typically, in industry, you would use a rotary encoder that has a disk with (say) four rings that are blackened from inside to outside in a binary pattern, then use a led/photocell pair to detect the reflectance to get the 4 bits out. 4 bits would give 16 directions.
Probably could do the same with magnets and hall effect sensors.
I am looking to do this exact thing, but since I have the anemometer and temp/humidity all working on a Nano, all I need is direction. But am not finding anything like it on the market.