The 40-year-old former England batsman's decision to stand down was "mutually agreed" with the club.
Ex-Australia batsman Chris Rogers will take over in the County Championship, while Jim Allenby will captain the side in limited-overs cricket.
Trescothick said: "It has been a tremendous privilege but now is the right time for change."
The left-handed opener, who made his Somerset debut in 1993, has scored 23,531 first-class runs and played 76 Tests for England between 2000 and 2006.
Somerset chairman Andy Nash said: "He steps down from the captaincy with the same good grace and eloquence with which he inherited it."
Marcus Trescothick has resigned as Somerset captain after six years in charge.