Personally I would start by keeping this data within your Hubspot database and running a similar workflow there. Whereby your workflow looks for the deal stage being known and then a branch to populate a timestamp field for each stage.
For the Zap, if it doesn’t require the Deal Stage name, then you could run the same zap whenever a Deal Stage updates, but the Zap would need to populate all timestamps from your Hubspot timestamp properties from my example above.
If you have access to Pro then setting the Timestamp with HubSpot Workflow when a deal moves to next stage is best practice. Then you just need to map the properties from HubSpot to BigQuery.
If Zapier is not sufficient for your needs (if you need to sync historical data as well) you can consider another service named Skyvia. They have 2 products that can be used for this case. Data integration is for syncing data between 2 systems in any direction. Automation works the same as Zapier (trigger-action approach) but is a more feature-rich tool.