You must first pick an axis that it will rotate around, I assume you want it to always rotate around the side with the welds. In that case you can use lookAt with that direction as the Up argument. The argument must be in the same space as the other arguments to lookAt.
--You must only calculate this once, if you calculate it every time the part will oscillate
local upDirection = part.CFrame:VectorToWorldSpace(Vector3.xAxis)
part.CFrame = CFrame.lookAt(part.Position, targetWorldSpace, upDirection)