You didn't mention which SCM you're using, but you do reference "commit hash", so I assume you're using one of the distributed SCM plugins (git, mercurial, etc.).
If you are using the git plugin, then you may be able to use the additional behaviour "ignore commits from certain users" so that commits from the continuous integration server user do not trigger another build of the job. Look at the "git log" output from those commits and paste the name of the user as written in "git log" in the exclusion list.
Thanks,
Mark Waite