The 24-year-old began his career with Hereford before joining Yeovil in May 2002.
Williams said: "It's a fabulous move to a great club."
He is currently serving a three-match ban, meaning he won't be able to make his Hammers debut against Leeds this weekend.