There is an easy solution if you are staying in Amsterdam instead of Haarlem (Rick Steves totally misses the point in diverting people who want to visit Amsterdam to stay in Haarlem, in my opinion, with his antiquated view of Amsterdam as if it were 1985 still).
This solution involves using park-and-ride facilities in Amsterdam. In a nutshell, you can park your car on a Park-and-Ride facility up to 96 hours, in a place with adjacent subway/metro/tram stops, paying very low for it, just € 11 for the whole 96 hours! (that is right, for the 4 days, not for each day).
There is a caveat, though: you must use public transportation from the park and ride to the central area of Amsterdam, in and out. You will only get the heavily discounted park fee if you use public transportation. The parking payment machines will check whether your public transportation card was validated (checked in and out) in a way that proves you took subway or trams or buses to central Amsterdam, instead of just going elsewhere. So if you are going to Haarlem, use first a tram or subway to Amsterdam Centraal station, and then take a train to Haarlem. But you should stay in Amsterdam instead, anyway.
There are several Park and Ride facilities, all with easy highway access.
Read all about the Park and Ride here: http://www.iamsterdam.com/en/visiting/plan-your-trip/getting-around/parking/park-and-ride