First verify that the crankset & bottom bracket themselves are OK. Spin the crank backward and push the bottom run of the chain inwards and it should come off the crank and rest on the bottom-bracket shell. Now spin the crank, is it smooth? Line one crank up with the seattube. Hold the seattube with one hand and grab the crankarm with the other one and push in and out. Is it tight with no play? If so, crank & BB are OK.
Next culprit is the chain. Put the chain on the bottom of the smallest chainring and spin teh crank backwards to put the chain back on the crank. Spin the crank backwards and look at the S-bend of the chain as it goes thorugh the derailleur cage. Are there any stiff links that stay bent the wrong way as it goes through? If so, flex this link sideways by grabbing the chain with both hands on each side of the stiff link. Flex the chain sideways to free up that stiff link.
Oh, btw, have you measured the chain to make sure it's not worn?