This idea encrypts your ballot with your voter ID + some secret key that you know and creates encrypted data E. It, then, publishes a (E, your ballot) pair. Since only you can decrypt E, others won't know how you vote.
A third party can now pressure you to produce your secrets to verify who you voted for. This is not possible in the current system: as long as the final tally reports at least 1 vote for the person you claim to have voted for, no one can prove your claim wrong.
"$5 off your next purchase if you can produce a receipt for candidate X!"
"You must vote for X if you wish to join my organization."
Some states in US allow you to take a photo of your ballot. This means they can already do the things you mention. But they don't, because it is illegal. It will continue to remain illegal.
If you are very worried about such a scenario, verify that your vote is on the blockchain, then destroy your receipt.
The fact that a receipt exists means that you can be pressured to provide it. If my boss wants me to vote for pro-business-owner anti-union candidates, he's not going to take "Yeah I promise I voted for your guy, but I destroyed my receipt" for an answer.
I don't really buy "it's illegal" as a counterargument. There are a lot of things employers pressure their employees to do that are illegal, but the employees don't really have the ability to do anything about it, because they're taking a risk on the legal system working out for them, and in the meantime they'll probably lose their job and be known as an employee who litigates against their employers. As a wise man once said, if you're a single-digit millionaire, you have no effective access to our legal system.
But doesn't this protocol make it impossible to prove what your secret key is? i.e. there are multiple (user-derivable) keys that look valid, as in deniable encryption?
(And I'm sure everyone's in agreement with the importance of making the ballot secret.)
"$5 off your next purchase if you can produce a receipt for candidate X!"
"You must vote for X if you wish to join my organization."