Hi Alberto,
1) Activity vs. state machines
Though both model elements are a behaviour element, they are used for different specific perspectives. Therefore, I would say, the situation (behaviour type) determines which of them is more suitable. IOW, you can model an activity behaviour with a state machine, and vice versa, but only one of them is appropriate in a given context. State machines focus on stable statuses and events triggering transition between these statuses; activity is rather a sequence of steps following each other along some decision rule as their executions are completed.
2) Pass information between activities
I suppose you mean activity rather than activity diagram, but I am not sure what you are looking for. There are two approaches: you can call a sub-activity by a CallAction and passing parameters; or you can send and receive async messages by SendObjectAction/SendSignalAction and AcceptEventAction. Both approaches provide a way to pass information between activities (not activity diagrams).
hope it helps,
Istvan