Steering Angle Sensor/Logger

Logger part might be a project down the road, so I'll concentrate on the sensing part.

It's for an actual car that doesn't have built-in steering angle sensor.(If it did, I'd only have to talk to the ECU via CAN or OBD2)
I'll have to attach it to the bulkhead, and probably run a belt/pully system on the steering shaft.

The design criteria that must be met are:
Under $100, not counting Arduino board itself.
Easy to make
Better than 1 degree precision.
Withstand noise, vibration, some heat.
minimum operating range of 2.4 turns lock-to-lock (about 864 degrees)

The type of sensors I've looked at are optical encoders, potentiometers, and string pots.
The string pot that I'm using as the benchmark is this:
And I can't seem to find a cheaper alternative elsewhere, or I just might not know where to look.

Optical encoders look somewhat doable, getting an encoder wheel could be easily laser cut out of wood or brass, or even 3d printed, except I'm not too sure about it being able to withstand vibration. Also, the optical sensor would have to be aligned precisely, and I don't have the facilities to do that.. unless there is a cheap off-the-shelf optical encoder that's already in the right form factor.

I'm looking into:

It's a 10 turn pot, and although the description in written poorly, I think it means that I can have 1024 point resolution over 10 turn range. It isn't much, but IF I were to employ a 1:4 shaft to sensor ratio, then I could probably achieve ~0.88degree per point resolution.
10lap = 3600deg = 1024pts
3.515625deg = 1pt
IF 1:4 ratio
THEN .88deg = 1pt.

I suppose I can use this guy:

But since it's restricted to 300degree, I'd have to use 3:1 ratio, but I'll get unacceptable resolution.. I think.. (it's 5am right now)

This I kind of like:

I wouldn't have to worry about gearing all that much, which is nice, cost it a bit high, but well within budget.

Looks nice, but I won't ever need 6000rpm capability.

I like the optical encoder idea, though, if it works and can be done cheaply and easily. That's how most high-end gaming wheels do it anyways(but then they're not subjected to vibration all that much).

I would have liked it to be an absolute position sensor since I'd only have to calibrate it from time to time, but then it would add complexity.
But relative position sensors need to be calibrated every time at start up(not a problem for gaming wheels), but it'll be PITA to do it every time, especially for a car that doesn't have power steering and wear race tires.

I've also looked at some OEM steering sensors on ebay. Not cheap, and bulky since it normally resides in the steering column.

.... Any ideas welcome....

Assuming you actually have a steering box with a Pitman arm, I'd think that measuring the angular position of it would tell you what you need. Maybe a string potentiometer or an angular sensor of some kind concentric with the main shaft coming out of the steering box. It's a filthy location so the string pot might not be such a good idea if you want this to be permanent.

I'd start with a string pot connected to the steering column i.e. the string is wrapped around the column a couple of times and then around a pulley attached to a rotary pot which is sprung against the string. Size the pulley to give the travel you need. This gives a very simple mechanical attachment with no possibility of interfering with the operation of the steering, and should be pretty reliable.

One issue is that readily available cheap rotary pots are usually not designed for continuous use and you might end up needing to replace that with some sort of rotary encoder, but to prove the concept a plain simple pot should be fine.