Can't you do it every time someone votes? The scores aren't dependent on any other items other than their own votes, so each time it gets a new vote, you rescore it and it will drop or go up on the front page accordingly.
The best would probably actively update on votes and do a catchall operation on ones that haven't been voted on or all on a certain periodic cycle.