Speaking of idealists, really it's people like you who claim that "every vote matters" who are the idealists. In fact you are not just an idealist, but outright wrong in this. You are also wrong in claiming that by voting people should make compromises; no, they shouldn't.
In reality the vote of any single person is worth zero. The chance that your vote makes a difference - that without your vote the result would be a tie - is so small as to be negligible, and even if it were the case that your vote was the tie-breaker, since the precision in counting the votes for things like a national election is always greater than one vote, even then it would be pretty much up to pure chance who ends up winning, not up to your tie-breaker vote.
The decision of any single person whether he votes also does not have a significant influence on how many other people may go to vote, and so we are back to the argument in the previous paragraph: your vote does note make a difference. Period. From the perspective of the rationality of your decision it does not matter what would happen if everyone else did the same etc. It would be entirely rational for people to not vote at all, and in fact many people make this rational decision when they stay home or hang out with friends instead.
Hence there is no point in voting if your goal is to influence the result. You are wrong if you think there is. This is the negative part. Now to the positive: One value I see in voting is that it gives you an opportunity to signal your preferences and your goals in your local community when you participate in political discussions. The preferences and goals of people living around you influence your life, and by participating in these political discussions you may actually have an effect on how these preferences and goals change over time. Having chats about "who to vote to" is one of the very few contexts which allows for exchanging ideas regarding these issues.
And so I think you should make use of this opportunity to influence others around your. By taking the effort of walking to the poll booth you signal your preference for living in a democratic society (although you could merely assert this preference as well, the fact that you give up a pleasant afternoon just to stand in line may give some actual credence to the claim). When it comes to choosing the candidate, you should choose the person 1) who represents your views and your preferences most closely, and 2) from whom it's unlikely that you would get favors if it became known that you voted for him. Why? Because such a choice would make it most credible that you indeed intend to make use of the opportunity of voting to represent your preferences and goals, as opposed to using it for some other purposes, i.e. in hoping to get favors from someone.
From this it follows that you should not make compromises and should not choose the candidate who is most likely to win among the barely acceptable ones. You should pick someone who is not among your friends, but whose views are closest to yours, even if he is relatively unknown. Again: your actual vote does not make a difference. You voicing your opinion about preferences and goals might have a local effect. You should use the opportunity of voting to maximize this latter effect.
AFAIK in the US there is always a write-in option. More people should make use of it.